<?php

namespace App\Kuafu\Pay\Command;

use App\Kuafu\Pay\Service\PayConfigService;
use Illuminate\Console\Command;

class InitCompanyAccount extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'pay:init-company-account';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = '初始化支付表账户信息';

    /**
     * Create a new command instance.
     *
     * @return void//
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * Execute the console command
     *
     * @return int
     */
    private static array $singleConfig;

    public function handle()
    {
        ini_set('memory_limit', '-1');

//        PayStreamModel::query()
//                      ->where('payChannel', '!=', PayStreamModel::PAY_CHANNEL_FY)
//                      ->where('payChannel', '<', PayStreamModel::PAY_CHANNEL_CUSTOM_PAYMENT)
//                      ->orWhere(function ($query) {
//
//                          // 富友的只更新4.1之后的
//                          $query->where('payChannel', PayStreamModel::PAY_CHANNEL_FY)
//                                ->where('createdAt', '>=', 1648742400);
//                      })
//                      ->select('payNo', 'payChannel', 'company', 'sysType', 'shopId', 'companyAccount')
//                      ->chunk(500, function ($streams) {
//
//                          $streams
//                              ->filter(function ($item) {
//                                  if ($item->company > 0) {
//                                      return false;
//                                  }
//
//                                  return true;
//                              })
//                              ->each(function ($item) {
//
//                                  $singleKey = $item->payChannel . '-' . $item->sysType . '-' . $item->shopId;
//
//                                  // 享元
//                                  if (isset($singleConfig[$singleKey])) {
//                                      $payConfig = self::$singleConfig[$singleKey];
//                                  } else {
//
//                                      self::$singleConfig[$singleKey] = $payConfig = (new PayConfigService($item->payChannel,
//                                          $item->sysType, $item->shopId))
//                                          ->getPayConfig();
//                                  }
//
//
//                                  $item->company        = $payConfig['company'];
//                                  $item->companyAccount = $payConfig['companyAccount'];
//                                  $item->save();
//
//                                  $this->info("payNo: {$item->payNo} company:{$item->company}");
//                              });
//                      });
    }
}
